起手式當然就是和 Codex & Claude 討論一輪,初步討論的問題包括:
把林林總總討論的內容寫成 CLADUE.md 和 PLAN.md。
做為一個沒安全感的程式小白,我自己的習慣是會請 AI 拉比較詳細的 Progress Dashboard 和 worklog,例如:
Progress Dashboard
## 建立專案共同語言
目標:讓後續對話不必重新解釋 Idiolect 是什麼,以及目前哪些方向已定、哪些仍待討論。
- [x] 〔Codex〕建立專案入口與文件分工
結果:已建立 `CLAUDE.md`、`AGENTS.md`、`work-log.md` 與 `progress-dashboard.md`。
- [x] 〔Codex〕文件化第一版產品與架構計畫
結果:`PLAN.md` 已整理願景、概念架構、能力邊界、AI 角色、開源切分、發展順序及開放問題。
- [x] 〔Codex〕加入早期多使用者與 AI 資源控制方向
結果:User/Actor、Workspace、Membership、Sponsor、Gateway 與 Usage Ledger 已納入架構。
- [x] 〔Claude〕以既有專案為基準複核計畫,並定出 repo 架構與五階段順序
結果:`docs/specs/2026-09-04-idiolect-repo-architecture-design.md`;`PLAN.md` 已同步。
- [x] 〔Ellen〕複核第一版計畫
結果(2026-09-05):確認 Speaking 是證據來源不是項目來源;Phase 1 內部改為「種子匯入 → 單字複習 → 動態累積」的順序。
## 建立 standalone repo 與程式骨架
目標:讓 Idiolect 從純文件目錄變成可以跑測試的 Python repo。步驟見設計文件第十節。
- [x] 〔Claude〕在 `projects/idiolect/` 就地 `git init`,並從 workspace 主 repo 解除追蹤
結果(2026-09-04):以 subtree split 接上 7 個文件 commit;workspace 已 gitignore 並解除追蹤;commit 規則改用 sub-repo 規則。
...
- [x] 〔Claude〕建立 `pyproject.toml` 與套件骨架
結果(2026-09-04):uv、hatchling、ruff、mypy;五層資料夾就位;依賴方向檢查 7 個測試通過。
Work Log
這裡我希望 AI 紀錄的粒度是和 commit 一致的,每次動作後都記一筆。基本上如果不看 log 我根本無法知道 AI 做了什麼。
#### 2026-09-04 16:20|從四個 App 校準為一個個人語言學習 Harness
**做了什麼**
1. 整理先前針對口說、聽力、寫作及個人語言庫的討論。
2. 將專案命名為 Idiolect,並在 `projects/idiolect` 建立正式專案文件。
3. 把「四個獨立 App」重新整理為「一個 Harness、多個 capabilities、一個 Language Core 與多種使用入口」。
4. 將原先的聽力工具拆成 Transcript Intake 與來源個別處理兩層,現階段只把前者放入核心計畫。
**觀察到什麼**
口說、Transcript Intake、寫作教練和單字複習並不具有相同的使用型態。口說需要收音 UI,寫作更適合作為 AI Skill,Transcript Intake 可以沒有 UI,而個人語言庫需要一個 Console。硬把它們都定義成 App,會讓入口形式取代真正的系統邊界。
**認知校準**
Idiolect 的主體應是 Harness 與 Language Core。AI 不在 App 之間維持一個持續人格;它在每條工作流程中完成明確的理解或轉換任務。跨能力累積的是 Corpus、Language Items、Learning Evidence 與使用者決定。
口說仍維持最高產品順位,但口說內部架構已在 Speaking Tool 中討論,本專案只處理整合契約。Transcript Intake 因輸入邊界清楚,可以成為驗證共用 Harness 契約的候選流程,但是否先實作仍需確認。
**產出**
- `PLAN.md`:第一版產品與架構計畫。
- `CLAUDE.md`、`AGENTS.md`:專案入口、邊界與文件分工。
- `progress-dashboard.md`:初始里程碑與待確認事項。
**下一步**
- 與 Ellen 複核 `PLAN.md`,修正名詞、邊界或優先序。
- 決定第一個要具體化的端到端流程:Speaking Integration 或 Transcript Intake。
- 選定後,定義 capability 的最小輸入、輸出、proposal、確認與寫回契約;暫不選技術框架。
架構弄好之後,我們決定第一步先讓語料庫裡有東西,因此我請 AI 把我的英文講義拉進來。這裡的英文講義是我的家教老師自製的 Google Doc 檔案,我請 AI 去抓所有 Vocabulary 的區塊。

然後就出現了很多
這種。我發現這樣後續基本無法索引,就停下來討論規則,定義出:
重新清理一次後把 3000 多個項目,清成 1351 個項目。但因為要做手動清理了,所以 AI 先幫我蓋了一個簡易的前端。

我一邊清理一邊和 AI 定義較詳細的規則,後來 AI 就說要不要我們直接串字典 API,因為「能成功在字典 API 找到內容」本身就可以當成一個清理 flag。
我覺得很有道理,就再根據 AI 的建議去找了韋伯的學習者字典 API,弄完之後變成這樣:

接下來我開始問像 color / colour 這種字要怎麼處理。我的期待是要能識別出是同一個字,而且最好還要有能切換英式拼法和美式拼法的功能,AI 就和我科普正規的字典的資料結構要怎麼做。
lexeme_key definition_id headword_gb headword_us pos 定義
─────────────────────────────────────────────────────────────────────────────
color mw:color:1:1 colour color noun a quality such as red, blue…
color mw:color:1:2 colour color noun something used to give color to…
color mw:color:1:a colour color noun the use or combination of colors
favor mw:favor:1:1 favour favor noun a kind or helpful act you do for…
favor mw:favor:1:a favour favor noun approval, support, or popularity
favor mw:favor:1:b favour favor noun preference for one person over…
center mw:center:1:1 centre center noun the middle point or part of…
center mw:center:1:a centre center noun a person or thing causing interest
center mw:center:1:b centre center noun the position of that person/thing
defense mw:defense:1 defence defense noun the act of defending someone…
defense mw:defense:2 defence defense noun something used to protect yourself
defense mw:defense:3 defence defense noun the act of speaking in support of…
program mw:program:1:1 programme program noun a plan of things done to achieve…
program mw:program:1:2 programme program noun a set of instructions for a computer
program mw:program:1:3 programme program noun a thin book giving information…
訂好架構後,我把所有的語料退回 staging 區,開始漫長的手工清理⋯⋯每確定一種規則,就請 AI 批次拉剩下的,再丟進正式的 library…..
雖是這麼說,但這邊其實我還在邊清理邊理解「我自己的語料 x 韋伯字典」做出的資料架構,到底是什麼。
有點繁瑣,明天繼續....